<?php	namespace Admin\Model;
use Hdphp\Model\Model;
/**
 * 后台用户管理模型
 * @author 武斌   <wubin.mail@foxmail.com>
 * 1.实现管理员登陆
 * 2.实现管理员修改密码
 */
class Admin extends Model
{
	//操作admin数据表
	protected $table = 'admin';
	//自动验证
	protected $validate = array(
		//array(字段名,验证方法,错误信息,验证条件,验证时间)
		array('username','required','请输入用户名',3,3),
		array('password','required','请输入密码',3,3),
		array('code','required','请输入验证码',3,3),
	);
	/**
	 * 登陆
	 */
	public function Login()
	{
		//用户提交的用户名、密码、验证码
		$adminName = $_POST['username'];
		$password = $_POST['password'];
		$code = strtoupper($_POST['code']);
		//自动验证
		if(!$this->create()) return false;
		//检测用户信息是否存在
		$data = $this->where('adminname',$adminName)->first();
		//如果用户信息不存在
		if(!$data)
		{
			//用户信息不存在,将错误信息压入到$this->error当中
			$this->error = '用户名不存在'; return false;
		}
		//验证密码
		if(md5($password) != $data['password'])
		{
			//密码不正确,将错误信息压入到$this->error当中
			$this->error = '密码不正确'; return false;
		}
		//验证验证码
		if($code != $_SESSION['code'])
		{
			//验证码不正确,将错误信息压入到$this->error当中
			$this->error = '验证码不正确'; return false;
		}
		//登陆成功之后将用户名和id存入到session中
		$_SESSION['adminName'] = $adminName;
		$_SESSION['aid'] = $data['aid'];
		return true;
	}	
	/**
	 * 修改密码
	 */	
	public function pass()
	{
		//当前登录后台的账户讯息
		$adminData =$this->where('aid',$_SESSION['aid'])->first();
		//判断原始密码是否正确
		if(md5($_POST['admin_pwd_o']) != $adminData['password'])
		{	//将错误信息压入$this->error
			$this->error = '原始密码错误'; return false;
		}
		//判断两次新密码是否一致
		if($_POST['admin_pwd'] != $_POST['admin_pwd_c'])
		{	//将错误信息压入$this->error
			$this->error = '两次新密码输入不一致'; return false;
		}
		//判断新密码与原始密码是否一致
		if(md5($_POST['admin_pwd']) == $adminData['password'])
		{	//将错误信息压入$this->error
			$this->error = '新密码与原始密码一致'; return false;
		}
		//执行修改密码
		if(!$res = $this->where('aid',$_SESSION['aid'])->update(array('password'=>md5($_POST['admin_pwd']))))	
		{
			//如果修改失败，提示错误信息
			$this->error = '修改失败'; return false;
		}	
		return true;
	}
}
